﻿'Imports Miron.Framework.Email.Dominio
'Imports System.Collections.Generic


'Namespace Email.Servicos

'    ''' <summary>
'    ''' Interface de Servico de envio de e-mail.
'    ''' </summary>
'    ''' <remarks></remarks>
'    Public Interface IEnvioEmailServico

'        ''' <summary>
'        ''' Solicitação de envio de E-mail
'        ''' </summary>
'        ''' <param name="_solicitacaoEnvioEmail">classe SolicitacaoEnvioEmail</param>
'        ''' <remarks></remarks>
'        Sub SolicitaEnvioEmail(ByVal _solicitacaoEnvioEmail As SolicitacaoEnvioEmail)

'        ''' <summary>
'        ''' Busca o E-mail atraves do ID
'        ''' </summary>
'        ''' <param name="_id">Long</param>
'        ''' <returns>classe Email</returns>
'        ''' <remarks></remarks>
'        Function BuscarEmailPorId(ByVal _id As Long) As Dominio.Email

'        ''' <summary>
'        ''' Busca todos os E-mails
'        ''' </summary>
'        ''' <returns>Lista(classe Email)</returns>
'        ''' <remarks></remarks>
'        Function BuscarEmailTodos() As List(Of Dominio.Email)

'        ''' <summary>
'        ''' Busca os Anexos de emails pelo ID do email.
'        ''' </summary>
'        ''' <param name="_id">Long</param>
'        ''' <returns>Lista(classe EmailAnexo)</returns>
'        ''' <remarks></remarks>
'        Function BuscarEmailAnexosPorEmailId(ByVal _id As Long) As IList(Of EmailAnexo)

'        ''' <summary>
'        ''' Busca todas as solicitacoes de envio de e-mail
'        ''' </summary>
'        ''' <returns>Lista(classe SolicitacaoEnvioEmail)</returns>
'        ''' <remarks></remarks>
'        Function BuscarTodasSolicitacoesEnvioEmail() As IList(Of SolicitacaoEnvioEmail)

'        ''' <summary>
'        ''' Busca as solicitações pela Unidade
'        ''' </summary>
'        ''' <param name="_unidade">String</param>
'        ''' <returns>Lista(classe SolicitacaoEnvioEmail)</returns>
'        ''' <remarks></remarks>
'        Function BuscarSolicitacoesPorUnidade(ByVal _unidade As String) As IList(Of SolicitacaoEnvioEmail)

'        ''' <summary>
'        ''' Regista os E-mails enviados
'        ''' </summary>
'        ''' <param name="_id">Long</param>
'        ''' <remarks></remarks>
'        Sub RegistrarEmailEnviado(ByVal _id As Long)

'        ''' <summary>
'        ''' Busca a Conta do usuario pelo ID
'        ''' </summary>
'        ''' <param name="_idConta">Long</param>
'        ''' <returns>classe EmailEnvioConta</returns>
'        ''' <remarks></remarks>
'        Function BuscarContaPorId(ByVal _idConta As Long) As EmailEnvioConta

'        ''' <summary>
'        ''' Salva o E-mail
'        ''' </summary>
'        ''' <param name="_email">classe Email</param>
'        ''' <remarks></remarks>
'        Sub SalvarEmail(ByVal _email As Dominio.Email)

'        ''' <summary>
'        ''' Salva a solicitação
'        ''' </summary>
'        ''' <param name="_solicitacao">classe SolicitacaoEnvioEmail</param>
'        ''' <remarks></remarks>
'        Sub SalvarSolicitacao(ByVal _solicitacao As SolicitacaoEnvioEmail)

'        ''' <summary>
'        ''' Exlcusão de solicitação de envio de email
'        ''' </summary>
'        ''' <param name="_solicitacao">_solicitacao As SolicitacaoEnvioEmail</param>
'        ''' <remarks></remarks>
'        Sub ExcluirSolicitacao(ByVal _solicitacao As SolicitacaoEnvioEmail)

'        ''' <summary>
'        ''' Função para buscar solicitações de envio de email por codigo e tipo fato gerador.
'        ''' </summary>
'        ''' <param name="_tipoFatoGerador">_tipoFatoGerador As String</param>
'        ''' <param name="_codigoFatoGerador">_codigoFatoGerador As Long</param>
'        ''' <returns>IList(Of SolicitacaoEnvioEmail)</returns>
'        ''' <remarks></remarks>
'        Function BuscarSolicitacoesPorCodigoETipoFatoGerador(ByVal _tipoFatoGerador As String, ByVal _codigoFatoGerador As Long) As IList(Of SolicitacaoEnvioEmail)

'        Function BuscarSolicitacoesNaoEnviadas() As IList(Of SolicitacaoEnvioEmail)

'    End Interface

'End Namespace
